<?php
/*
*
* dtapi 数据验证过虑类,接收get,post,files数据并过虑
* 项目官网： www.dtapi.cn
* 这是一个完全开源免费的项目，您可以任意使用；我们唯一的要求就是保留本信息，当然您也可以在后面添加自己的版权信息，我们支持任何人使用本软件进行任何商业的非商业用途。
* 如果您有问题或者有更好的想法可以加群 61291160 一起讨论。
* -- 高飞
*
*/
namespace dtapi;
class Data {

    public static function __callStatic($name, $args)
    {
        $do = new self();
       return $do->__call($name,$args);
    }

    //获取数据，并过虑，方法比较简单，只是在destoon原有过虑基础上再次过虑，所以无需多做复杂工作，增加系统负担
    function __call($method, $args)
    {
        global $_POST,$_GET,$GLOBALS;
        $action = strtolower($method);
        $safe = isset($args[1]) && $args[1] ? strtolower($args[1]) : '';
        $data = [];
        if(in_array($action,array('post','get','all','file'))){
            if(isset($args[0]) && $args[0]){

                $fields = strstr($args[0],',') ? explode(',',$args[0]) : [$args[0]];
                foreach ($fields as $k=>$v){
                    if($action=='post'){
                        $value = isset($_POST[$v]) ? $GLOBALS[$v] : '';
                    }elseif($action=='get'){
                        $value = isset($_GET[$v]) ? $GLOBALS[$v] : '';
                    }elseif($action=='file'){
                        $value = isset($_FILES[$v]) ? $GLOBALS[$v] : '';
                    }else{
                        $value = isset($GLOBALS[$v]) ? $GLOBALS[$v] : '';
                    }
                    switch ($safe){

                        case 'int':
                            $default = isset($args[2]) ? $args[2] : 0;
                            $value = $value ? intval($value) : $default;
                            break;
                        case 'float':
                            $default = isset($args[2]) ? $args[2] : 0;
                            $value = $value ? round($value) : $default;
                            break;
                        case 'null':
                            $default = isset($args[2]) ? $args[2] : '';
                            $value = $value ? $value : $default;
                            break;
                        default:
                            $default = isset($args[2]) ? $args[2] : '';
                            $value = $value ? dhtmlspecialchars($value) : $default;
                            break;
                    }

                    $data[$v] = $value;
                }

                if(count($fields)==1){
                    return $data[$v];

                }else{
                    return $data;
                }

            }else{
                if($action=='post'){
                    foreach ($_POST as $k=>$v){
                        $data[$k] = $GLOBALS[$k];
                    }
                }elseif($action=='get'){
                    foreach ($_GET as $k=>$v){
                        $data[$k] = $GLOBALS[$k];
                    }
                }elseif($action=='file'){
                    foreach ($_FILES as $k=>$v){
                        $data[$k] = $GLOBALS[$k];
                    }
                }else{
                    $data = $GLOBALS;
                }
                return $data;
            }


        }
    }
}